//
//  HDMainTabBarController.swift
//  HDSwfitWeibo
//
//  Created by wty on 16/4/7.
//  Copyright © 2016年 wty. All rights reserved.
//

import UIKit

class HDMainTabBarController: UITabBarController {
    override func viewDidLoad() {
        super.viewDidLoad()
        //0.将tabBar  用kvc赋值为自定义的tabBar
        let hdTabBar = HDTabBar()
         self.setValue(hdTabBar, forKey: "tabBar")
        //1.创建子控制器
        cteatChildVc()
    }
    
//    override func  viewWillAppear(animated: Bool) {
//        super.viewDidAppear(animated)
//
//        //添加中间按钮
//        setupComposeBtn()
//    }

    //加载中间按钮 设置frame
//    private func setupComposeBtn () {
//        //1.将按钮添加到父控件上
//        tabBar.addSubview(composeBtn)
////        composeBtn.backgroundColor = UIColor.blackColor()
//        //2.设置按钮的frame
//        let width = UIScreen.mainScreen().bounds.size.width / 5
//        let rect = CGRect(x: 0, y: 0, width: width, height: 49)
//        //2.1设施按钮的偏移
//        composeBtn.frame = CGRectOffset(rect, 2*width, 0)
//        
//    }


    //1.创建子控制器
    private func  cteatChildVc (){
        //1.先从数据库的json加载控制器  可以预留空间 不用更新版本可以实现 如果网络挂了 就用本地写死的
        //1.1获取json的路径
//        let path  = NSBundle.mainBundle().pathForResource("MainVCSettings.json", ofType: nil)
//        //1.2通过文件路劲创建NSData 路径是一个可选类型  可绑定
//        if   let jsonPath = path {
//            let jsonData = NSData(contentsOfFile: jsonPath)
//            do{
//                //放置有可能发生异常的代码
//                //1.3json反序列化生成字典数组   try:发生异常跳到catch中继续执行 try!:发生异常直接奔溃
//                let dictArr = try NSJSONSerialization.JSONObjectWithData(jsonData!, options: NSJSONReadingOptions.MutableContainers)
//                print(dictArr)
//                //1.4遍历数组 动态创建控制器 遍历一个数组 必须明确数据类型
//                for  dict in dictArr as! [[String:String]]{
//                    addChildViewController(dict["vcName"]!, title: dict["title"]!, imageName: dict["imageName"]!)
//                }
//                
//            }
//            catch{
//                //发生异常之后会执行代码
//                print(error)
                //1.创建主页控制器
                addChildViewController(HDHomeController(), title: "首页", imageName:"tabbar_home")
                //2.创建消息控制器
                addChildViewController(HDMessageController(), title: "消息", imageName: "tabbar_message_center")
                
//                //2.1占位控制器
//                addChildViewController(HDNullController(), title: "", imageName: "")
                //2.创建发现控制器
                addChildViewController(HDDiscoverController(), title: "广场", imageName: "tabbar_discover")
                //4.创建我的控制器
                addChildViewController(HDProfiltController(), title: "我", imageName: "tabbar_profile")
//
//            }
//        }

        
    }
    
    //1.1加载子控制器
    private func  addChildViewController( childVc : UIViewController , title : String , imageName : String   ) {
        
//        // -1.动态获取命名空间
//        let ns = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String
//        
//        // 0 .将字符串转换为类
//        // 0.1默认情况下命名空间就是项目的名称, 但是命名空间名称是可以修改的
//        let cls:AnyClass? = NSClassFromString(ns + "." + childControllerName)
//        // 0.2通过类创建对象
//        // 0.2.1将AnyClass转换为指定的类型
//        let vcCls = cls as! UIViewController.Type
//        // 0.2.2通过class创建对象
//        let childVc = vcCls.init()
        //1.将子控制器添加到导航控制器中
        let navVc = UINavigationController()
        navVc.addChildViewController(childVc )
        
        //2.将导航控制器添加到tabBarController上
        self.addChildViewController(navVc)
        //3.设置tabBarItem
        
        childVc .tabBarItem.title =  title
        childVc .tabBarItem.image = UIImage(named:imageName )
        childVc .tabBarItem.selectedImage = UIImage(named: imageName+"_highlighted")
        //4.图片和文字渲染颜色  系统默认蓝色  ios7 之前只有文字会改变颜色  在这里图片改为取消渲染 所以  这里只渲染文字
        tabBar.tintColor = UIColor.orangeColor()
        
        //5.设置navgationBar 的标题
        childVc .navigationItem.title = title
        
    
        //6.  homeVc.title = "首页" = homeVc.tabBarItem.title = "首页"+  homeVc.navigationItem.title = "首页"
//        childController.title = "首页"
    }
    


}
